Welcome to pandas!

8.13 多表横向拼接设置

前面在使用df.join()时函数,other参数提供的是单个DataFrame表格,如果提供多个DataFrame表格,则可以设置在列表中,如果other参数提供的列表,则要求参与拼接的表格列名不相同。

由于how参数设置了outer,所以对所有表格执行了拼接,如果other参数是列表,则how参数只支持left,outer,inner三种联接方式。


import pandas as pd

y19=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.10 join表格横向拼接(按索引号或标签).xlsx","2019年" ,index_col =0)

y20=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.10 join表格横向拼接(按索引号或标签).xlsx","2020年" ,index_col =0)

y21=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.10 join表格横向拼接(按索引号或标签).xlsx","2021年" ,index_col =0)

print (y19)

print (y20)

df=y19.join(other=[ y20,y21 ],

how = "outer" #除索引的字段名外,其余字段名都要唯一,如重复,则会提示错误.

)

print (df)

返回:

部门_19 业绩_19
业务员
张三 销售1部 195
李四 销售2部 175
王麻子 销售2部 192
小韦 销售3部 222
许麻子 销售1部 195
老刘 销售1部 100

部门_20 业绩_20
业务员
张三 销售1部 232
李四 销售2部 129
王麻子 销售2部 104
许麻子 销售1部 175
老刘 销售1部 150
老王 销售1部 297

部门_19 业绩_19 部门_20 业绩_20 部门_21 业绩_21
业务员
张三 销售1部 195.0 销售1部 232.0 销售1部 174.0
李四 销售2部 175.0 销售2部 129.0 销售2部 174.0
王麻子 销售2部 192.0 销售2部 104.0 销售2部 237.0
小韦 销售3部 222.0 NaN NaN NaN NaN
许麻子 销售1部 195.0 销售1部 175.0 销售1部 190.0
老刘 销售1部 100.0 销售1部 150.0 销售1部 196.0
老王 NaN NaN 销售1部 297.0 NaN NaN